﻿using System;
using JetBrains.Annotations;

namespace MugenMvvmToolkit.Interfaces
{
    /// <summary>
    ///  Represents the interface which contains information about binding a view to a view model as page.
    /// </summary>
    public interface IViewPageMappingItem
    {
        /// <summary>
        ///     Gets the name of mapping.
        /// </summary>
        [CanBeNull]
        string Name { get; }

        /// <summary>
        ///     Gets the type of view.
        /// </summary>
        [NotNull]
        Type ViewType { get; }

        /// <summary>
        ///     Gets or sets the type of view model.
        /// </summary>
        [NotNull]
        Type ViewModelType { get; }

        /// <summary>
        ///     Gets the <see cref="Uri" />.
        /// </summary>
        Uri Uri { get; }
    }
}